/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controlador;

import java.util.*;
import modelo.IReclamacion;
import modelo.Reclamacion;
import modelo.IReclamacionModel;
import vista.IReclamacionView;
import vista.IReclamacionLeidaView;
/**
 *
 * @author LEONIC
 */
public class ReclamacionController implements IReclamacionController{

    private IReclamacionModel model;
    private List<IReclamacionView> views=new ArrayList<IReclamacionView>();
    private List<IReclamacionLeidaView> views1=new ArrayList<IReclamacionLeidaView>();

    public void setup(IReclamacionModel model, List<IReclamacionView> views) {
        setModel(model);
        addViews(views);
        model.setController(this);

    }

    public void setup1(IReclamacionModel model, List<IReclamacionLeidaView> views) {
        setModel(model);
        addViews1(views);
        model.setController(this);

    }

    public void start() {
        for(IReclamacionView view:views)
            view.display();

        for(IReclamacionLeidaView view:views1)
            view.display();
    }

    private void addViews(List<IReclamacionView> views){
        for(IReclamacionView view:views)
            addView(view);
    }

    private void addViews1(List<IReclamacionLeidaView> views){
        for(IReclamacionLeidaView view:views)
            addView1(view);
    }

    public void addView(IReclamacionView view) {
        view.setModel(model);
        view.setController(this);
        views.add(view);
    }

    public void addView1(IReclamacionLeidaView view) {
        view.setModel(model);
        view.setController(this);
        views1.add(view);
    }

    public void removeView(IReclamacionView view) {
        views.remove(view);
    }

    public IReclamacionModel getModel() {
        return model;
    }

    public void setModel(IReclamacionModel model) {
        this.model=model;
    }

    public void nuevoReclamacionGesture(int idReclamacion, int codArticulo, String observaciones, String nombreArticulos) {
        IReclamacion reclamacion=new Reclamacion(idReclamacion,codArticulo,false,observaciones,nombreArticulos);
        getModel().nuevoReclamacion(reclamacion);
    }

    public void ActualizarReclamacionGesture(int idReclamacion, int codArticulo, String observaciones, String nombreArticulos) {
        IReclamacion reclamacion=new Reclamacion(idReclamacion,codArticulo,false,observaciones,nombreArticulos);
        getModel().actualizarReclamacion(reclamacion);
    }

    public void EliminarReclamacionGesture(int idReclamacion, int codArticulo, String observaciones, String nombreArticulos) {
        IReclamacion reclamacion=new Reclamacion(idReclamacion,codArticulo,false,observaciones,nombreArticulos);
        getModel().eliminarReclamacion(reclamacion);
    }

    public void fireDataModelChanged() {
        for (IReclamacionView view : views) {
            view.dataModelChanged();
        }

        for (IReclamacionLeidaView view : views1) {
            view.dataModelChanged();
        }
    }

    public List<IReclamacionView> getViews(){
        return this.views;
    }

    public List<IReclamacionLeidaView> getViews1(){
        return this.views1;
    }
}
